1. Field
Various features pertain to distributed communication and/or storage systems. At least one aspect pertains to methods for authorizing storage in a peer-to-peer overlay network.
2. Background
Structured peer-to-peer networks, such as overlay networks, typically use Distributed Hash Tables (DHT) for scalability and deterministic routing of queries. Distributed hash tables (DHTs) are a class of decentralized distributed systems that provide a lookup service similar to a hash table: (node name, identifier value) pairs are stored in the DHT, and any participating node can efficiently retrieve the identifier value associated with a given node name. Each node has a unique identity in the DHT and likewise each service or object stored in the network has a unique identity. All the identities are part of the same identifier space, which is usually very large to avoid collisions. Responsibility for maintaining the identities (e.g., mapping from node names to identifier values ID) is distributed among the nodes, in such a way that a change in the set of participating nodes causes a minimal amount of disruption. This allows DHTs to scale to extremely large numbers of nodes and to handle continual node arrivals, departures, and failures. DHTs form an infrastructure that can be used to build more complex services, such as distributed file systems, peer-to-peer file sharing and content distribution systems, cooperative web caching, multicast, anycast, domain name services, and instant messaging.
In such distributed systems, especially those implementing distributed hash tables to store and retrieve data and publish and subscribe to service instances, there may not be any control to which entity may publish at which location. Therefore, a mechanism is needed whereby a node's identity by itself or in combination with a service identity may be used to determine where a node may store data.
In such systems it may be challenging to allow the storing node to verify that the data owner is in fact authorized to store at that particular node or resource ID. If an overlay network cannot restrict the number of locations at which data can be stored by a given node, a single harmful node, whether malicious or accidental, could have a negative impact on the distributed quota available in the overlay network. However, restricting the location of storage corresponding to a node to exactly one may also be a problem. Without this, a given node may be burdened by large amounts of data to be stored from a heavy user, which would also provide an attacker incentive to target a particular resource ID for a chosen location attack.
It would be valuable to provide a way to allow the data owner to control which nodes/users are allowed to write, modify, or delete a particular resource ID. Without this, any node may potentially overwrite the contents of a given resource ID.